package com.sweet.jpa.service;

import com.sweet.page.Page;
import com.sweet.page.Pageable;

import java.io.Serializable;
import java.util.List;

/**
 * 通用业务定义
 *
 * @author limi 2018-04-03-13:46
 */
public interface BaseService<T, ID extends Serializable> {
    /**
     * 添加实体
     *
     * @param t
     * @return
     */
    T insert(T t);

    /**
     * 修改实体
     *
     * @param t
     * @return
     */
    T update(T t);

    /**
     * 删除实体
     *
     * @param t
     */
    void delete(T t);

    /**
     * 查看单个实体
     *
     * @param id
     * @return
     */
    T getOne(ID id);

    /**
     * 查看实体数量
     *
     * @return
     */
    int getCount();

    /**
     * 查看实体列表
     *
     * @return
     */
    List<T> getList();

    /**
     * 分页查看实体列表
     *
     * @param pageable
     * @return
     */
    Page<T> getPage(Pageable pageable);
}